---
title: IPageRange
summary: API reference for IPageRange.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-17
library: PdfAPI.Core
reference_type: package
---

# IPageRange

`IPageRange` is the read-only contract for a page selection, implemented by `PageRange`. It exposes the boundary values plus three computed classification flags that distinguish an "all pages" selection from a partial or single-page one, which `PdfClientService.ExtractPageRanges` relies on to decide how to copy pages. ([BR-14](../../business-rules.md#br-14-original-range-copies-the-whole-document))

## Purpose
- Defines the read surface a page selection must expose for page-extraction logic to classify and act on it.

## Context
- Namespace: `PdfAPI.Core`
- Assembly/package: `PdfAPI.Core`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| StartPage | `int StartPage { get; }` | The first page (1-based) included in the selection. |
| StopPage | `int StopPage { get; }` | The last page included in the selection; `-1` denotes open-ended (through the last page). ([BR-15](../../business-rules.md#br-15-open-ended-stop-page-means-through-last-page)) |
| IsPartial | `bool IsPartial { get; }` | Indicates the selection covers a subset of pages rather than the whole document. |
| IsOriginal | `bool IsOriginal { get; }` | Indicates the selection spans the entire original document (`1` to `-1`). ([BR-14](../../business-rules.md#br-14-original-range-copies-the-whole-document)) |
| IsSingle | `bool IsSingle { get; }` | Indicates the selection covers exactly one page. |

## Behavioral notes
- `PdfClientService.ExtractPageRanges` branches on `IsOriginal` versus the relative order of `StartPage`/`StopPage` to decide whether to copy the whole document, copy ascending, or copy descending. ([BR-14](../../business-rules.md#br-14-original-range-copies-the-whole-document), [BR-15](../../business-rules.md#br-15-open-ended-stop-page-means-through-last-page), [BR-16](../../business-rules.md#br-16-descending-range-reverses-page-order))

## Constraints and usage notes
- `PageRange` is the only implementation shipped in the compiled assembly.*

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Dependencies](../../dependencies.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Security and authorization](../../security-authorization.md)
- [API reference](../index.md)

## Sources
- `PdfAPI.Core\Extract\PageRange.cs`
